/*
Humanloop API

The Humanloop API allows you to interact with Humanloop from your product or service.

You can do this through HTTP requests from any language or via our official Python or TypeScript SDK.

To install the official [Python SDK](https://pypi.org/project/humanloop/), run the following command:

```bash
pip install humanloop
```

To install the official [TypeScript SDK](https://www.npmjs.com/package/humanloop), run the following command:

```bash
npm i humanloop
```

---

Guides and further details about key concepts can be found in [our docs](https://docs.humanloop.com/).

The version of the OpenAPI document: 4.0.1


NOTE: This file is auto generated by Konfig (https://konfigthis.com).
*/
import type * as buffer from "buffer"

import { ToolSource } from './tool-source';

/**
 * Definition of tool within a model config.  The subset of ToolConfig parameters received by the chat endpoint. Does not have things like the signature or setup schema.
 * @export
 * @interface ModelConfigToolRequest
 */
export interface ModelConfigToolRequest {
    /**
     * The description of the tool shown to the model.
     * @type {string}
     * @memberof ModelConfigToolRequest
     */
    'description'?: string;
    /**
     * Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
     * @type {object}
     * @memberof ModelConfigToolRequest
     */
    'parameters'?: object;
    /**
     * The name of the tool shown to the model.
     * @type {string}
     * @memberof ModelConfigToolRequest
     */
    'name': string;
    /**
     * Source of the tool. If defined at an organization level will be \'organization\' else \'inline\'.
     * @type {ToolSource}
     * @memberof ModelConfigToolRequest
     */
    'source'?: ToolSource;
    /**
     * Code source of the tool.
     * @type {string}
     * @memberof ModelConfigToolRequest
     */
    'source_code'?: string;
    /**
     * Other parameters that define the config.
     * @type {object}
     * @memberof ModelConfigToolRequest
     */
    'other'?: object;
    /**
     * If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to look up the Humanloop runtime of the tool
     * @type {string}
     * @memberof ModelConfigToolRequest
     */
    'preset_name'?: string;
}

